<?php

namespace CSan\NutrientBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity(repositoryClass="CSan\NutrientBundle\Entity\FoodRepository")
 * @ORM\Table(
 *   name="nutrient_food",
 *   indexes={
 *   	@ORM\Index(name="public_id_index", columns={"public_id"}),
 *   	@ORM\Index(name="name_index", columns={"name"})
 *   }
 * )
 */
class Food
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */	
    protected $id;

    /**
     * @ORM\Column(name="public_id", type="string", length=32)
     */	
    protected $publicId;

    /**
     * @ORM\Column(type="string", length=255)
     * @Assert\NotBlank()
     * @Assert\MinLength(3)
     * @Assert\MaxLength(255)
     */
    protected $name;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $energy;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $protein;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $carbohydrates;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $starch;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $sugar;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $fat;

    /**
     * @ORM\Column(name="fatty_acids_saturated", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $fattyAcidsSaturated;

    /**
     * @ORM\Column(name="fatty_acids_monounsaturated", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $fattyAcidsMonounsaturated;

    /**
     * @ORM\Column(name="fatty_acids_polyunsaturated", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $fattyAcidsPolyunsaturated;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $water;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $alcohol;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $fiber;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $calcium;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $copper;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $iodine;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $iron;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $magnesium;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $manganese;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $phosphorus;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $potassium;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $selenium;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $sodium;

    /**
     * @ORM\Column(type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $zinc;

    /**
     * @ORM\Column(name="vitamin_a", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminA;

    /**
     * @ORM\Column(name="vitamin_b1", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB1;

    /**
     * @ORM\Column(name="vitamin_b2", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB2;

    /**
     * @ORM\Column(name="vitamin_b3", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB3;

    /**
     * @ORM\Column(name="vitamin_b5", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB5;

    /**
     * @ORM\Column(name="vitamin_b6", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB6;

    /**
     * @ORM\Column(name="vitamin_b9", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB9;

    /**
     * @ORM\Column(name="vitamin_b12", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminB12;


    /**
     * @ORM\Column(name="vitamin_c", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminC;

    /**
     * @ORM\Column(name="vitamin_d", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminD;

    /**
     * @ORM\Column(name="vitamin_e", type="float")
     * @Assert\NotBlank()
     * @Assert\Min(0)
     * @Assert\Max(100)
     */	
    protected $vitaminE;

    /**
     * Constructor
     *
     * @param string $publicId
     */
    public function __construct($publicId)
    {
        $this->publicId = $publicId;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set publicId
     *
     * @param string $publicId
     */
    public function setPublicId($publicId)
    {
        $this->publicId = $publicId;
    }

    /**
     * Get publicId
     *
     * @return string 
     */
    public function getPublicId()
    {
        return $this->publicId;
    }

    /**
     * Set name
     *
     * @param string $name
     */
    public function setName($name)
    {
        $this->name = $name;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set energy
     *
     * @param float $energy
     */
    public function setEnergy($energy)
    {
        $this->energy = $energy;
    }

    /**
     * Get energy
     *
     * @return float 
     */
    public function getEnergy()
    {
        return $this->energy;
    }

    /**
     * Set protein
     *
     * @param float $protein
     */
    public function setProtein($protein)
    {
        $this->protein = $protein;
    }

    /**
     * Get protein
     *
     * @return float 
     */
    public function getProtein()
    {
        return $this->protein;
    }

    /**
     * Set carbohydrates
     *
     * @param float $carbohydrates
     */
    public function setCarbohydrates($carbohydrates)
    {
        $this->carbohydrates = $carbohydrates;
    }

    /**
     * Get carbohydrates
     *
     * @return float 
     */
    public function getCarbohydrates()
    {
        return $this->carbohydrates;
    }

    /**
     * Set starch
     *
     * @param float $starch
     */
    public function setStarch($starch)
    {
        $this->starch = $starch;
    }

    /**
     * Get starch
     *
     * @return float 
     */
    public function getStarch()
    {
        return $this->starch;
    }

    /**
     * Set sugar
     *
     * @param float $sugar
     */
    public function setSugar($sugar)
    {
        $this->sugar = $sugar;
    }

    /**
     * Get sugar
     *
     * @return float 
     */
    public function getSugar()
    {
        return $this->sugar;
    }

    /**
     * Set fat
     *
     * @param float $fat
     */
    public function setFat($fat)
    {
        $this->fat = $fat;
    }

    /**
     * Get fat
     *
     * @return float 
     */
    public function getFat()
    {
        return $this->fat;
    }

    /**
     * Set fattyAcidsSaturated
     *
     * @param float $fattyAcidsSaturated
     */
    public function setFattyAcidsSaturated($fattyAcidsSaturated)
    {
        $this->fattyAcidsSaturated = $fattyAcidsSaturated;
    }

    /**
     * Get fattyAcidsSaturated
     *
     * @return float 
     */
    public function getFattyAcidsSaturated()
    {
        return $this->fattyAcidsSaturated;
    }

    /**
     * Set fattyAcidsMonounsaturated
     *
     * @param float $fattyAcidsMonounsaturated
     */
    public function setFattyAcidsMonounsaturated($fattyAcidsMonounsaturated)
    {
        $this->fattyAcidsMonounsaturated = $fattyAcidsMonounsaturated;
    }

    /**
     * Get fattyAcidsMonounsaturated
     *
     * @return float 
     */
    public function getFattyAcidsMonounsaturated()
    {
        return $this->fattyAcidsMonounsaturated;
    }

    /**
     * Set fattyAcidsPolyunsaturated
     *
     * @param float $fattyAcidsPolyunsaturated
     */
    public function setFattyAcidsPolyunsaturated($fattyAcidsPolyunsaturated)
    {
        $this->fattyAcidsPolyunsaturated = $fattyAcidsPolyunsaturated;
    }

    /**
     * Get fattyAcidsPolyunsaturated
     *
     * @return float 
     */
    public function getFattyAcidsPolyunsaturated()
    {
        return $this->fattyAcidsPolyunsaturated;
    }

    /**
     * Set water
     *
     * @param float $water
     */
    public function setWater($water)
    {
        $this->water = $water;
    }

    /**
     * Get water
     *
     * @return float 
     */
    public function getWater()
    {
        return $this->water;
    }

    /**
     * Set alcohol
     *
     * @param float $alcohol
     */
    public function setAlcohol($alcohol)
    {
        $this->alcohol = $alcohol;
    }

    /**
     * Get alcohol
     *
     * @return float 
     */
    public function getAlcohol()
    {
        return $this->alcohol;
    }

    /**
     * Set fiber
     *
     * @param float $fiber
     */
    public function setFiber($fiber)
    {
        $this->fiber = $fiber;
    }

    /**
     * Get fiber
     *
     * @return float 
     */
    public function getFiber()
    {
        return $this->fiber;
    }

    /**
     * Set calcium
     *
     * @param float $calcium
     */
    public function setCalcium($calcium)
    {
        $this->calcium = $calcium;
    }

    /**
     * Get calcium
     *
     * @return float 
     */
    public function getCalcium()
    {
        return $this->calcium;
    }

    /**
     * Set copper
     *
     * @param float $copper
     */
    public function setCopper($copper)
    {
        $this->copper = $copper;
    }

    /**
     * Get copper
     *
     * @return float 
     */
    public function getCopper()
    {
        return $this->copper;
    }

    /**
     * Set iodine
     *
     * @param float $iodine
     */
    public function setIodine($iodine)
    {
        $this->iodine = $iodine;
    }

    /**
     * Get iodine
     *
     * @return float 
     */
    public function getIodine()
    {
        return $this->iodine;
    }

    /**
     * Set iron
     *
     * @param float $iron
     */
    public function setIron($iron)
    {
        $this->iron = $iron;
    }

    /**
     * Get iron
     *
     * @return float 
     */
    public function getIron()
    {
        return $this->iron;
    }

    /**
     * Set magnesium
     *
     * @param float $magnesium
     */
    public function setMagnesium($magnesium)
    {
        $this->magnesium = $magnesium;
    }

    /**
     * Get magnesium
     *
     * @return float 
     */
    public function getMagnesium()
    {
        return $this->magnesium;
    }

    /**
     * Set manganese
     *
     * @param float $manganese
     */
    public function setManganese($manganese)
    {
        $this->manganese = $manganese;
    }

    /**
     * Get manganese
     *
     * @return float 
     */
    public function getManganese()
    {
        return $this->manganese;
    }

    /**
     * Set phosphorus
     *
     * @param float $phosphorus
     */
    public function setPhosphorus($phosphorus)
    {
        $this->phosphorus = $phosphorus;
    }

    /**
     * Get phosphorus
     *
     * @return float 
     */
    public function getPhosphorus()
    {
        return $this->phosphorus;
    }

    /**
     * Set potassium
     *
     * @param float $potassium
     */
    public function setPotassium($potassium)
    {
        $this->potassium = $potassium;
    }

    /**
     * Get potassium
     *
     * @return float 
     */
    public function getPotassium()
    {
        return $this->potassium;
    }

    /**
     * Set selenium
     *
     * @param float $selenium
     */
    public function setSelenium($selenium)
    {
        $this->selenium = $selenium;
    }

    /**
     * Get selenium
     *
     * @return float 
     */
    public function getSelenium()
    {
        return $this->selenium;
    }

    /**
     * Set sodium
     *
     * @param float $sodium
     */
    public function setSodium($sodium)
    {
        $this->sodium = $sodium;
    }

    /**
     * Get sodium
     *
     * @return float 
     */
    public function getSodium()
    {
        return $this->sodium;
    }

    /**
     * Set zinc
     *
     * @param float $zinc
     */
    public function setZinc($zinc)
    {
        $this->zinc = $zinc;
    }

    /**
     * Get zinc
     *
     * @return float 
     */
    public function getZinc()
    {
        return $this->zinc;
    }

    /**
     * Set vitaminA
     *
     * @param float $vitaminA
     */
    public function setVitaminA($vitaminA)
    {
        $this->vitaminA = $vitaminA;
    }

    /**
     * Get vitaminA
     *
     * @return float 
     */
    public function getVitaminA()
    {
        return $this->vitaminA;
    }

    /**
     * Set vitaminB1
     *
     * @param float $vitaminB1
     */
    public function setVitaminB1($vitaminB1)
    {
        $this->vitaminB1 = $vitaminB1;
    }

    /**
     * Get vitaminB1
     *
     * @return float 
     */
    public function getVitaminB1()
    {
        return $this->vitaminB1;
    }

    /**
     * Set vitaminB2
     *
     * @param float $vitaminB2
     */
    public function setVitaminB2($vitaminB2)
    {
        $this->vitaminB2 = $vitaminB2;
    }

    /**
     * Get vitaminB2
     *
     * @return float 
     */
    public function getVitaminB2()
    {
        return $this->vitaminB2;
    }

    /**
     * Set vitaminB3
     *
     * @param float $vitaminB3
     */
    public function setVitaminB3($vitaminB3)
    {
        $this->vitaminB3 = $vitaminB3;
    }

    /**
     * Get vitaminB3
     *
     * @return float 
     */
    public function getVitaminB3()
    {
        return $this->vitaminB3;
    }

    /**
     * Set vitaminB5
     *
     * @param float $vitaminB5
     */
    public function setVitaminB5($vitaminB5)
    {
        $this->vitaminB5 = $vitaminB5;
    }

    /**
     * Get vitaminB5
     *
     * @return float 
     */
    public function getVitaminB5()
    {
        return $this->vitaminB5;
    }

    /**
     * Set vitaminB6
     *
     * @param float $vitaminB6
     */
    public function setVitaminB6($vitaminB6)
    {
        $this->vitaminB6 = $vitaminB6;
    }

    /**
     * Get vitaminB6
     *
     * @return float 
     */
    public function getVitaminB6()
    {
        return $this->vitaminB6;
    }

    /**
     * Set vitaminB9
     *
     * @param float $vitaminB9
     */
    public function setVitaminB9($vitaminB9)
    {
        $this->vitaminB9 = $vitaminB9;
    }

    /**
     * Get vitaminB9
     *
     * @return float 
     */
    public function getVitaminB9()
    {
        return $this->vitaminB9;
    }

    /**
     * Set vitaminB12
     *
     * @param float $vitaminB12
     */
    public function setVitaminB12($vitaminB12)
    {
        $this->vitaminB12 = $vitaminB12;
    }

    /**
     * Get vitaminB12
     *
     * @return float 
     */
    public function getVitaminB12()
    {
        return $this->vitaminB12;
    }

    /**
     * Set vitaminC
     *
     * @param float $vitaminC
     */
    public function setVitaminC($vitaminC)
    {
        $this->vitaminC = $vitaminC;
    }

    /**
     * Get vitaminC
     *
     * @return float 
     */
    public function getVitaminC()
    {
        return $this->vitaminC;
    }

    /**
     * Set vitaminD
     *
     * @param float $vitaminD
     */
    public function setVitaminD($vitaminD)
    {
        $this->vitaminD = $vitaminD;
    }

    /**
     * Get vitaminD
     *
     * @return float 
     */
    public function getVitaminD()
    {
        return $this->vitaminD;
    }

    /**
     * Set vitaminE
     *
     * @param float $vitaminE
     */
    public function setVitaminE($vitaminE)
    {
        $this->vitaminE = $vitaminE;
    }

    /**
     * Get vitaminE
     *
     * @return float 
     */
    public function getVitaminE()
    {
        return $this->vitaminE;
    }
}